// payment-webview.js
Page({
  data: {
    filePath: '',
    orderId: '',
    webviewUrl: ''
  },

  onLoad(options) {
    console.log('webview支付页面参数:', options)
    
    if (options.orderId) {
      this.setData({
        orderId: options.orderId
      })
      
      // 从本地存储获取HTML内容
      const paymentHtml = wx.getStorageSync('paymentHtml')
      if (paymentHtml) {
        // 创建临时的HTML文件
        this.createTempHtmlFile(paymentHtml)
      } else {
        wx.showToast({
          title: '支付数据不存在',
          icon: 'none'
        })
        setTimeout(() => {
          wx.navigateBack()
        }, 1500)
      }
    } else {
      wx.showToast({
        title: '参数错误',
        icon: 'none'
      })
      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
    }
  },

  // 创建临时HTML文件
  createTempHtmlFile(htmlContent) {
    // 由于小程序安全限制，我们不能直接访问本地文件
    // 改为使用data URL的方式
    try {
      // 将HTML内容编码为data URL
      const dataUrl = `data:text/html;charset=utf-8,${encodeURIComponent(htmlContent)}`
      
      console.log('创建data URL成功')
      this.setData({
        webviewUrl: dataUrl
      })
    } catch (err) {
      console.error('创建data URL失败:', err)
      wx.showToast({
        title: '支付页面加载失败',
        icon: 'none'
      })
    }
  },

  // webview加载完成
  onWebViewLoad() {
    console.log('webview加载完成')
  },

  // webview加载错误
  onWebViewError(e) {
    console.error('webview加载错误:', e)
    wx.showToast({
      title: '支付页面加载失败',
      icon: 'none'
    })
  },

  // 复制支付链接
  copyPaymentLink() {
    const paymentHtml = wx.getStorageSync('paymentHtml')
    if (!paymentHtml) {
      wx.showToast({
        title: '支付数据不存在',
        icon: 'none'
      })
      return
    }
    
    // 从HTML中提取支付链接
    const urlMatch = paymentHtml.match(/action="([^"]+)"/)
    if (urlMatch && urlMatch[1]) {
      const paymentUrl = urlMatch[1]
      
      wx.setClipboardData({
        data: paymentUrl,
        success: () => {
          wx.showToast({
            title: '支付链接已复制',
            icon: 'success'
          })
        },
        fail: () => {
          wx.showToast({
            title: '复制失败，请重试',
            icon: 'none'
          })
        }
      })
    } else {
      wx.showToast({
        title: '支付链接解析失败',
        icon: 'none'
      })
    }
  },

  // 检查支付状态
  checkPaymentStatus() {
    wx.showLoading({ title: '检查支付状态...' })
    
    const globalUserInfo = getApp().getUserInfo()
    const userId = globalUserInfo ? globalUserInfo.id : null
    
    if (!userId) {
      wx.hideLoading()
      wx.showToast({
        title: '用户信息错误',
        icon: 'none'
      })
      return
    }
    
    wx.request({
      url: `http://localhost:8081/viporder/viptaocanById?userid=${userId}`,
      method: 'GET',
      success: (res) => {
        wx.hideLoading()
        
        if (res.data && Array.isArray(res.data)) {
          const currentOrder = res.data.find(order => order.id == this.data.orderId)
          if (currentOrder && currentOrder.status === 1) {
            wx.showToast({
              title: '支付成功！',
              icon: 'success'
            })
            setTimeout(() => {
              wx.navigateBack()
            }, 2000)
          } else {
            wx.showToast({
              title: '订单尚未支付',
              icon: 'none'
            })
          }
        }
      },
      fail: (err) => {
        wx.hideLoading()
        console.error('检查支付状态失败:', err)
        wx.showToast({
          title: '检查失败，请重试',
          icon: 'none'
        })
      }
    })
  },

  // 返回按钮
  onBack() {
    wx.navigateBack()
  }
})
